package tpo.modelo;

import java.util.Date;

import org.joda.time.DateMidnight;
import org.joda.time.Days;

public class Alquiler {
	private static int proximoCodigo = 1;
	private int codigo;
	private Cliente cliente;
	private Date fechaInicio;
	private Date fechaFin;
	private Automovil automovil;
	private String inspeccion;
	private float costoBase;
	private Date fechaDevolucion;
	
	public Alquiler(Cliente cliente, Date fechaInicio, Date fechaFin, Automovil automovil, String inspeccion) {
		this.codigo = getProximoCodigo();
		this.cliente = cliente;
		this.fechaInicio = fechaInicio;
		this.fechaFin = fechaFin;
		this.automovil = automovil;
		this.inspeccion = inspeccion;
		this.costoBase = automovil.getCostoDiario() * cantidadDeDias(fechaInicio, fechaFin);
	}

	private float cantidadDeDias(Date fechaInicio2, Date fechaFin2) {
		return Days.daysBetween(new DateMidnight(fechaInicio), new DateMidnight(fechaFin)).getDays();
	}

	private int getProximoCodigo() {
		return proximoCodigo++;
	}
	
	public boolean sosAlquiler(int codigo) {
		return this.codigo == codigo;
	}
	
	public Cliente getCliente() {
		return cliente;
	}
	
	public void actualizaFechaDevolucion() {
		fechaDevolucion = new Date(); 
	}
	
	public float getCostoKMExcedente() {
		return automovil.getCostoKMExcedente();
	}
	
	public void liberarAutomovil() {
		automovil.liberar();
	}
	
	public float getCostoBase() {
		return costoBase;
	}
}
